In many business environments where small computers (PCs), particularly IBM.TM. compatible, are used to simplify, catalog, or maintain day-to-day operations, inventories, or correspondence, it is often desirable to have a pair of terminals, or keyboard-monitor combinations, remotely located from each other and which operate a single program in the computer in an either/or use mode. Examples of such situations are boss-secretary environments, lab-office environments, and clerical sales-accounting environments. In the past, cable extension systems for remotely locating a terminal more than a few feet from a computer have generally been unsuccessful because of reliability problems and high cost; but with the advent of applicant's extension system, the subject of U.S. Pat. No. 4,885,718 and application Ser. Nos. 07/447,010 now U.S. Pat. No. 5,193,200 and 07/488,710, extended shared systems have become feasible.
In such a system, a shared system, the computer operates a single program such as a word processing program or an accounting program while either of the two users manipulate data in the single program on two separate terminals, possibly located in different offices, with the computer being generally located between them. In this situation, it is particularly convenient for a supervisor to be able to observe that a trainee is doing on the computer and to correct mistakes or instruct the trainee; or where up to four people may work on separate terminals on a common spreadsheet or document, sharing the work or any number of like situations. To the computer, it appears that there is only a single user inputting data on a single keyboard via a single, standard keyboard port. This system is contrasted to multi-user systems, which are generally out of the price range of many small businesses and which are capable of accommodating a plurality of simultaneous users.
Obviously, the problem with such a shared system lies in switching from one keyboard to the other when one user takes control of the computer from the other. Attempts applicant is aware of by others to achieve this switching involve the use, in one instance, of a double pole, double throw switch connected to switch one or the other keyboard inputs to the computer. Of course, it is cumbersome and inconvenient for users to be constantly operating a switch in order to use a keyboard, particularly if the switch is not conveniently located to both. In another effort, it was necessary for a user to press a button to switch the desired keyboard on-line with the computer, which simultaneously activated a timing circuit that, after detecting a set time period of inactivity on the keyboard, would disconnect the keyboard from the computer. This required the user to again press the button to regain control of the computer. This is obviously an aggravating and inconvenient situation, i.e., to be constantly required to press a button when lapses of activity on the keyboard occur.
In yet another system, the applicant devised a digital circuit which detected a keyboard clock pulse occurring upon a keystroke on one of the keyboards and switched control of the computer to that keyboard responsive to this first key stroke. This circuit utilized TTL buffers to amplify data levels and clock pulses travelling in both directions between the computer and the keyboards which generated positive feedback, which resulted in instability and oscillations. This system was actually built and sold beginning Nov. 19, 1987. While this system was an improvement inasmuch as control was automatically shifted responsive to the first keystroke, the system abounded with problems. It tended to become unstable with only minor accumulations of dust or dirt, requiring that it be kept immaculately clean. Also, it was not compatible with certain keyboards with which it would inexplicably go into uncontrolled oscillations, occasionally crashing the entire system. Even with keyboards with which it was supposed to be compatible, it would occasionally uncotrollably oscillate which, on occasion, would produce deliterious effects on software. It is believed that this design concept of utilizing TTL buffers with resulting feedback is generally unsound, which can cause lock-up conditions in the computer, uncontrolled oscillations, and a plethora of problems.
To overcome these problems, and as objects of the present invention, applicant has devised circuitry which is economical and simple in construction and which also automatically switches control of a computer to a selected keyboard upon which a keystroke occurs and thereafter maintains that keyboard as the active keyboard. In order for the other shared keyboard to be used, all that is required is for a keystroke to be made on it. It has been found during testing that applicant's circuitry shifts control of the computer between keyboards fast enough to allow simultaneous typing on both keyboards and, although this is not the normal contemplated use, illustrates high reliability, efficiency, and stability of the circuitry of the present invention.